
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

static char *key_names[] = 
{
	"",
	"esc",
	"1",
	"2",
	"3",
	"4",
	"5",
	"6",
	"7",
	"8",
	"9",
	"0",
	"-",
	"=",
	"backspace",
	"tab",
	"q",
	"w",
	"e",
	"r",
	"t",
	"y",
	"u",
	"i",
	"o",
	"p",
	"[",
	"]",
	"enter",
	"lctrl",
	"a",
	"s",
	"d",
	"f",
	"g",
	"h",
	"j",
	"k",
	"l",
	";",
	"\'",
	"`",
	"lshift",
	"\\",
	"z",
	"x",
	"c",
	"v",
	"b",
	"n",
	"m",
	",",
	".",
	"/",
	"rshift",
	"keypad*",
	"lalt",
	"space",
	"capslock",
	"f1",
	"f2",
	"f3",
	"f4",
	"f5",
	"f6",
	"f7",
	"f8",
	"f9",
	"f10",
	"numlock",
	"scrolllock",
	"keypad7",
	"keypad8",
	"keypad9",
	"keypad-",
	"keypad4",
	"keypad5",
	"keypad6",
	"keypad+",
	"keypad1",
	"keypad2",
	"keypad3",
	"keypad0",
	"keypad.",
	"",
	"",
	"",
	"f11",
	"f12",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"rewind",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"fastforward",
	"",
	"",
	"keypadenter",
	"rctrl",
	"",
	"",
	"mute",
	"calculator",
	"play",
	"",
	"stop",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"volume-",
	"",
	"volume+",
	"",
	"web",
	"",
	"",
	"keypad/",
	"",
	"printscreen",
	"ralt",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"home",
	"up",
	"pgup",
	"",
	"left",
	"",
	"right",
	"",
	"end",
	"down",
	"pgdn",
	"ins",
	"del",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"lwin",
	"rwin",
	"application",
	"",
	"sleep",
	"",
	"",
	"",
	"",
	"",
	"browsersearch",
	"browserfavorites",
	"browserrefresh",
	"browserstop",
	"browserforward",
	"browserback",
	"computer",
	"mail",
	"media",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"power",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	""
};

char *GetKeyNameByScanCode(int scan_code)
{
	return key_names[scan_code];
}

int GetScanCodeByKeyName(char *key_name)
{
	int scan_code;

	for (scan_code = 0; scan_code < 512; scan_code++)
	{
		if (_stricmp(key_names[scan_code], key_name) == 0)
		{
			return scan_code;
		}
	}

	return -1;
}

